Method and system for cloud computing services for use with client devices having memory cards

ABSTRACT

A system, method and computer program product for cloud computing, including a cloud server including a cloud link module or program and coupled to a communications network; a client device including a device link module or program and coupled to the cloud server via the communications network; and a memory card including a card link module or program and coupled to the client device. The cloud link, client link, and card link modules or programs are configured to allocate processing of content between the cloud server, client device and memory card, such that communications bandwidth usage between the cloud server and the client device are minimized during content delivery.

CROSS REFERENCE TO RELATED DOCUMENTS

The present invention is continuation of U.S. patent application Ser.No. 12/948,340 of Amir Masoud ZARKESH, entitled “METHOD AND SYSTEM FORCLOUD COMPUTING SERVICES FOR USE WITH CLIENT DEVICES HAVING MEMORYCARDS,” filed on Nov. 17, 2010, now allowed, which claims benefit ofpriority to U.S. Provisional Patent Application Ser. No. 61/262,520 ofAmir Masoud ZARKESH, entitled “CLOUD SERVICES CARD SIDELOADING CLIENTDEVICES,” filed on Nov. 18, 2009, the entire disclosures of all of whichare hereby incorporated by reference herein.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention generally relates to systems and methods for cloudcomputing or virtualized severs, and more particularly to systems andmethods for cloud computing services for use with client devices havingmemory cards, and the like.

Discussion of the Background

In recent years, cloud computing systems and methods have been employedfor the provisioning of dynamically scalable and often virtualizedcomputing resources that can be allocated as a service over a datacommunication network, such as the Internet, and the like. Such cloudcomputing systems and methods can be configured for Software as aService (SaaS), Platform as a Service (PaaS), Infrastructure as aService (IaaS), and the like, services, which can fall under theumbrella of cloud computing.

However, even with such cloud computing systems and methods, there isstill a need for cloud computing services that can be used with clientdevices having memory cards for providing robustness and efficiency tosuch cloud computing systems and methods.

SUMMARY OF THE INVENTION

Therefore, there is a need for a method and system that address theabove and other problems with cloud computing systems and methods. Theabove and other needs are addressed by the illustrative embodiments ofthe present invention, which provide a novel method and system for cloudcomputing services for use with client devices having memory cards, andthe like.

Accordingly, in an illustrative aspect, there is provided a system,method and computer program product for cloud computing, including acloud server including a cloud link module or program and coupled to acommunications network; a client device including a device link moduleor program and coupled to the cloud server via the communicationsnetwork; and a memory card including a card link module or program andcoupled to the client device. The cloud link, client link, and card linkmodules or programs are configured to allocate processing of contentbetween the cloud server, client device and memory card, such thatcommunications bandwidth usage between the cloud server and the clientdevice are minimized during content delivery.

The cloud server can include a plurality or cloud servers or virtualizedcomputers.

Based on the allocation by the cloud link, client link, and card linkmodules or programs, the cloud server can perform transcoding on thecontent to a higher compression, the memory card can perform transcodingof the higher compressed content to a lower compression so the lowercompressed content can be used by the client device, and the clientdevice can perform decompression of the transcoded content.

The content can include video and/or audio files.

The memory card can include a standard memory interface.

The memory card can include a microcontroller, microprocessor,application processor, and/or programmable processor configured toexecute the card link module or program.

Still other aspects, features, and advantages of the present inventionare readily apparent from the following detailed description, simply byillustrating a number of illustrative embodiments and implementations,including the best mode contemplated for carrying out the presentinvention. The present invention also is capable of other and differentembodiments, and its several details can be modified in variousrespects, all without departing from the spirit and scope of the presentinvention. Accordingly, the drawings and descriptions are to be regardedas illustrative in nature, and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the present invention are illustrated by way ofexample, and not by way of limitation, in the figures of theaccompanying drawings, in which like reference numerals refer to similarelements, and in which:

FIG. 1 is an illustrative system and method for cloud computing servicescards for use with client devices having memory cards; and

FIG. 2 is an illustrative flow chart of an illustrative device linkmodule or program running on a host device of the illustrative system ofFIG. 1.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention includes recognition that cloud computing servicescan and do often provide business and personal applications online thatare accessed from a web browser in a client device, while the softwareand data are stored on one or more cloud servers. The cloud servers canbe connected and distributed in one or many different geographicallocation(s), and can be referred to as the “cloud.” The cloud is oftenrun under virtualization software that enables running many applicationson virtualized computers, which can appear as many separate computersthat can run on a same server. Virtualization software need not beemployed on the cloud, but it does represent an optimized utilization ofthe computing, communication, and storage resources of the cloudservers.

The capability to run software applications as a service onInternet-connected consumer electronics devices is highly desirable forconsumers. Each application on a client device can employ (1) internetconnection bandwidth, (2) processor computational power, and (3) localmemory and/or storage, in order to be able to download and run part orall of the applications that are targeted for the client in a cloudcomputing services system.

Variations in the values of the above client device parameters affectthe experience of the user running the cloud software applicationsand/or services and can be manifested in the form of application orservice latencies. Client latency can be characterized as the delay ortime between any two significant events in the process of running anapplication or service on a client device (e.g., the time between thestart of a download of an application until the download of an initialpart of the application is performed, the time between the start of anapplication on the client device and a first processed, viewed, ordetected result of the application, etc.). Similarly, each applicationor service has a certain set of maximum latencies associated with anacceptable level of user experience quality. If one or more of theseclient device latencies in running the application or service exceed anacceptable level, the user experience can be degraded and becomeunacceptable.

A fundamental theorem of information theory, known as Shannon's Theorem,as the backbone of the communication systems technology, establishesthat however contaminated with noise interference a communicationchannel may be, it is still possible to communicate digital data (e.g.,content, information, data, etc.) nearly error-free up to a givenmaximum rate through the channel. This theoretical maximum forinformation transfer rate of a channel for a particular noise level, isreferred to as the capacity of a communication channel, and can bereached, for example, via suitable source and channel encoding anddecoding. The present invention includes recognition that a directconsequence of Shannon's Theorem is that no matter how much processingpower and storage may be available on the cloud server side, theseservers will not be able to effectively provide their services andapplications unless a commensurate (e.g., ideal) or minimum (e.g.,practical) level of processing and storage is also available on theclient device side. In other words, a relatively rich set of cloudservices and applications can be provided to client devices throughcloud servers, advantageously, if there is a partitioning of theprocessing and storage of the services and applications, such that someminimum level of the processing and storage is kept available orreserved for cloud applications on the client device side. This isbecause communications can become a most costly part of a cloud systemif all or most of the application and/or services are run on the cloud,which as a result consumes a higher amount communications bandwidth. Thepresent invention includes recognition that given the availability ofsuch minimum processing and storage capabilities on the client deviceside, the software application and services can be partitioned betweencloud servers and the client devices, such that even with the limitedbandwidth of the communication channel between the cloud servers and theclient devices, cloud application or service latencies and/or the costof communications between the cloud and client can be acceptable to theuser.

Applications of the above fundamental theorem in communication systemsthat employ some significant minimum processing on the client deviceside can include video/audio delivery, Internet browsing, and the like.In the case of video and audio delivery, if a non-encoded signal is sentfrom the cloud servers to the client device, relatively very littlelocal processing need be employed on the client device side. However,this requires significant bandwidth to transfer the non-encoded videoand audio, which is not practical due to the practical limited bandwidthof communication channels and the relative high usage cost thereof.Therefore, it is much cheaper to include decoders on the client deviceside and send encoded video and audio through the communication channel.Another example is Internet browsing, which is turning out to be a mainvenue for interfacing applications in many devices, including video andaudio delivery, and the like. There are advantages in taking care ofbrowsing tasks on the cloud server side, especially since there are manyplug-ins, and the like, devices that enable significant user experienceenhancements with the cost of significant processing (e.g., such as withAdobe Flash Player). Once again, doing all the Internet Browsing taskson the cloud servers and sending fully rendered images to the clientdevice reduces the processing and storage requirements on the clientdevice side, but causes a high cost with respect to the communicationchannel usage, or due to the limit of the channel bandwidth causes arelatively low quality user experience due to the relatively highlatency in providing the fully rendered images to the client device at afast enough pace. The same problem can occur if multimedia files areplayed in an application on the client device rather than on a webbrowser.

In the case of the personal computers (PC), laptops, and the like,connected to data or voice networks, and the like, there exist very fewwidely accepted sets of central processing units (CPUs) and associatedarchitectures (e.g., a very widely used example being processors basedon the Intel® architecture). At the same time, such client devices havesufficient amounts of storage (e.g., relatively large hard disks),memory (e.g., RAM), and reliable bandwidth (e.g., via Cable or DSL,etc.) that can support a broad set of applications, whether these areapplications that are downloaded from the cloud and run in theirentirety on the client, or applications that are run partly on theclient and are partly served by the cloud.

However, the present invention includes recognition that in the case ofnewer categories of consumer electronics devices, there is no standardprocessor and associated architecture, which dominates the market. Oneexample is the category of mobile cell phone handsets, wherein even cellphones manufactured by a single commercial company (e.g., Nokia®,Motorola®, etc.) often use different processors and software operatingsystems for different models, and have widely varying features and setof capabilities. Moreover, the present invention includes recognitionthat there are many different types and versions of operating systems,and that various amounts of storage are available in different cellphones and within different cell phone models. As a result, eachapplication, whether stand-alone or running on the cloud, needs to beported to different processors in order to enable the application to berun on the different handsets. Moreover, many handsets may not have thecapability to run an application that requires higher computing powerthan that which is natively available. Therefore, even though manyconsumer electronics devices, such as handsets, hand held devices, andthe like, increasingly have fast Internet connections, not all of themare capable enough to run many of the available applications. Even ifsuch devices are capable enough, they may need different ported binaries(e.g., compiled source code) to match their processors andarchitectures. The present invention includes recognition that suchheavy “fragmentation” of processors, architectures, operating systems,available storage, reliable bandwidth for Internet connections, and thelike, in consumer electronics devices, such as mobile cell phones, handheld devices, and the like, has resulted in significant costs forcontent or software/service providers, and represents a verydisadvantageous state of affairs for the average consumer and providersof software applications and services. One solution for the abovechallenges is to run more of the application in the cloud. However, thissolution poses the problem of a higher relative cost and latency due tothe relatively higher amount of communications between the cloud serversand the client devices.

The present invention includes recognition that the problems discussedabove cause inefficiencies for many entities in the ecosystem ofdelivery of applications and services for handsets and consumerelectronics devices, for example, including application developers whoincur a high cost in porting their applications to a variety ofprocessors for a wide spectrum of devices, if they wish to cover asignificant portion/sector of the market; consumers who are limited intheir access to only part of the available applications and services onthe market, e.g., those that work with their specific device (e.g.,applications or “apps” which can only be run on the Apple® iPhone®platform, etc.); and cloud service and content providers who have accessto only part of the devices in the market that have the requisiteminimum requirements, and to which they have ported their services andapplications.

Within the category of fragmented consumer electronics devices describedabove, the only practical and successful offering to consumers so farhas been a vertical “integrated” solution, behind what is referred to inthe industry as a “walled garden” (e.g., a closed set or exclusive setof information services provided for users). Such a vertical solutiontypically involves a single company and a set of partner companiesproviding (a) the actual consumer electronics device (e.g., with aspecific processor), (b) approved applications running on such specificprocessor, and (c) an Internet site or exclusive online deliverymechanism to download new applications by the consumers of the specifictype of consumer electronics device in (a). For example, in the mobilehandset market, Apple has provided such a solution by providing theiPhone and the Apple App Store. Other players, such as Google arepromoting another in-house developed operating system, Android, andprovide a site for downloading applications that work on phones runningAndroid. Such a vertical offering by Google is limited only to phonesrunning Android on respective processors, and provides a single sourcefor application distribution and download.

Advantageously, the present invention leverages the very few externalmemory standards that are common between a majority of handsets andconsumer electronics devices, personal computers, laptops, netbooks, andthe like. For example, most of such devices have one or more slots toconnect to external storage devices through memory standards, such asSD, USB, and the like, interfaces. Such cards can included Compact Flashcards, Smart Media cards, MultiMedia Cards, Secure Digital (SD) cards,microSD cards, miniSD cards, SDHC cards, miniSDSC cards, memory sticks,USB sticks or flash drives, xD cards, cards with both processing andstorage elements, and the like.

Generally, the present invention can include illustrative methods andsystems that employ an accessory memory card, with a standard memoryinterface, that includes at least some memory and at least oneprocessor, to connect as a slave to a variety of host devices throughthe standard memory interface, where the host devices are connected viathe Internet, other data networks, and the like, at least for somefraction of a time, to a central application and/or services server,e.g., a cloud server of a cloud, to enable the host devices to be placedunder the control of the cloud and receive and process delivery of cloudservices, applications, and the like.

The illustrative method and system can include a computer program ormodule running on the cloud servers of a cloud (e.g., called a cloudlink program or module), a computer program or module running on thehost device (e.g., called a device link program or module), and acomputer program or module running on the accessory memory card (e.g., asideloaded memory card, called a card link program or module).Advantageously, the illustrative methods and systems enable theprocessing and storage on the accessory card to act as a cache for thecloud servers, since the accessory card and the host device areconnected to each other relatively more often, and since thecommunication link therebetween has a relatively higher data rate thanthe communication link between the cloud servers and the host device.Therefore, a cloud application and/or service can be run by partlyrunning such application and/or service on the memory card, and partlyon the cloud servers. The present invention allows for extension ofcloud applications and/or services from the cloud servers to the memorycards, advantageously, considering the fact that in many cases thememory cards and the cloud servers are both acting as slaves with thehost device acting as the master (e.g., the communications between thehost device and cloud servers, and between the memory card and the hostdevice can be initiated only by the host device).

Advantageously, with the illustrative methods and systems, therespective device link programs or modules manage request queues of thecloud servers, memory cards, and host devices, so as enable the deliveryof applications and/or services to the client host devices. Theprocessing and storage of the memory card can be configured take care ofthe employed resources on the client device side for a providingrelatively higher quality cloud services and/or application delivery ata relatively lower cost, and in a uniform manner. Advantageously, withsuch local processing and storage resources, the cloud services and/orapplications can be partitioned between the cloud servers, the hostdevices, and the accessory memory cards. Advantageous examples of tasksthat can be run on the accessory memory cards can include video and/oraudio decoding, transcoding, image rendering, compression, encryption,decryption, and the like.

Referring now to the drawings, FIG. 1 is an illustrative system andmethod for cloud services cards for use with client devices. In FIG. 1,the system and method 100 can include an electronic client host device10 having a microprocessor 10A (e.g., such as a cell phone, a consumerelectronics device, etc.), and with a connection mechanism or link 12(e.g., through the Internet or other data network, etc.) to a cloudserver or servers 11 having one or more microprocessors 11A that run acloud link program 19 to serve the client host device 10. The clienthost device 10 may not have enough processing and/or storage in a formuseful for the cloud servers 11. The client host device 10, for example,can include cell phones, personal digital assistants, televisions,set-top boxes, digital video recorders, home entertainment systems,appliances, personal computers, laptops, netbooks, other consumerelectronic devices, and the like. A memory card 13 having one or moremicroprocessors and/or microcontrollers 13A (e.g., a sideloaded memorycard) is connected to the host device 10 through an interface 14 (e.g.,a standard memory interface) and is used to load the employed processingand/or storage, advantageously, to enable the corresponding cloudservices that employ such local processing and storage local to the hostdevice 10. The memory card 13, for example, can include Compact Flashcards, Smart Media cards, MultiMedia Cards, Secure Digital (SD) cards,microSD cards, miniSD cards, SDHC cards, miniSDSC cards, memory sticks,USB sticks or flash drives, xD cards, other similar standard ornon-standard memory cards with additional processing capabilities, andthe like. The memory card 13 can run programs 15, such a hardwareabstraction layer, an operating system, a set of drivers, and the like,to enable suitable card link programming on the memory card 13.Accordingly, the memory card 13 can run a card link program 16 thatenables communications between the memory card 13, the host device 10,and cloud servers 11. The memory card 13 can also run one or moreapplications 17 and 18 and other similar applications and/or services atthe same or different times. The cloud servers 11 usually want to workwith many different types of host devices 10 having processing andstorage that can be very different and fragmented between such devices.Accordingly, employing the uniform memory card 13 connected via thestandard interface 14 to a variety of the host devices 10, enables thecloud servers 11 to have access to uniform processing and/storage localto a variety of the host devices 10.

In an illustrative embodiment, the interface 14 has a higher speedconnection than the interface or link 12, and as a result the hostdevice 10 can benefit from the cached processing and/or storage in thememory card 13, relative to the processing and/or storage on the cloudservers 11. An application and/or service provided by cloud servers 11can be delivered to the host device 10 under acceptable latency evenwith the relatively high latency of the connection 12, if theapplication and/or service are appropriately partitioned between thecloud servers 11, and the local processing in the host device 10.However, due to the lack of availability of uniform processing and/orstorage in different types of the host devices 10, local uniformprocessing and/or storage can be provided, advantageously, through thehigher speed interface 14 to the memory card 13 having such uniformprocessing and/or storage and one or more processors 13A and one or morememory and/or storage elements therewithin. Thus, the memory card 13 andthe cloud servers 11 can be configured as slaves in communications withthe host device 10 that acts as the master, such that communicationsthrough interface 12 and interface 14 are possible when the host device10 initiates such communications. Accordingly, a device link computerprogram or module 20 running on the host device 10 enablescommunications between cloud servers 11 running a cloud link computerprogram or module 19, and the memory card 13 running a card linkcomputer program or module 16. Requests queues can also be employed toprocess requests between the cloud servers 11, the host device 10, andthe memory card 13, for example, including a cloud link request queue22, a card link request queue 23, a device link request queue 21, and anoverall link request queue 24. The cloud link program or module 19 canbe a part of other programs running on the cloud servers 11. Similarly,the device link program or module 20 can be a part of other programsrunning on the host device 10. Similarly, the card link program 16 canbe a part of other programs running on the memory card 13. The devicelink computer program or module 20 can be written such that togetherwith the card link program or module 16 enable cloud link computerprogram or module 19 to effectively act as the master for predeterminedfunctions on both the device 10 and the memory card 13.

The cloud link request queue 22 can be filled with requests of the cloudservers 11 based on a determined priority of the cloud link program 19and/or other programs and/or services running on the cloud servers 11.Similarly, the device link request queue 21 can be filled with requestsof the host device 11 based on a determined priority of the device linkprogram 20 and/or other programs and/or services running on the hostdevice 10. The requests in the device link request queue 21 can includerequests from users, other agents or devices, and the like, with whichthe host device 10 interacts, as gathered from the respective interfacesof the host device 10. Similarly, the card link request queue 23 can befilled with requests of the memory card 13 based on a determinedpriority of the card link program 16 and/or other programs and/orservices running on the memory card 13. The overall link request queue24 can be filled with requests of the host device 10 based on adetermined priority of the device link program 20 and/or other programsand/or services running on the host device 10.

The device link program 20 can use the state of the host device 10 andall suitable signals of input and output devices of the host device 10to determine suitable requests, with suitable priority, to submit intothe device link request queue 21. Similarly, the card link program 16can use the state of the memory card 13 and all suitable signals ofinput and output devices of the memory card 13 to determine suitablerequests, with suitable priority to submit into the card link requestqueue 23. Similarly, the cloud link program 19 can use the state of thecloud servers 11 and all suitable signals of input and output devices ofthe cloud servers 11 to determine suitable requests, with suitablepriority, to submit into the cloud link request queue 22.

FIG. 2 is an illustrative flow chart of an illustrative device linkprogram running on a host device of the illustrative system of FIG. 1.In FIG. 2, the device link program or module 20 on the host device 10 isused to enable communications between the cloud servers 11, the memorycard 13, and the host device 10. For example, at step 30 all suitablevalues and parameters are initialized, and then step 31 checks andschedules requests from the device link queue 21 and moves suitablerequests into the overall link request queue 24. Step 32 checks andschedules requests from the cloud link queue 22 and moves suitablerequests into the overall link request queue 24. Step 33 checks andschedules requests from the card link queue 23 and moves suitablerequests into the overall link request queue 24. Step 34 processes therequests in the overall link request queue 24 in order of priority untilthe overall link request queue 24 is emptied. The processing of steps31-34 then can be repeated continuously until a stop or other suitablecondition is executed.

The requests in the overall link request queue 24 can includeinteraction with any suitable interfaces of the host device 10. Theorder of the steps 31-34 can be changed in any suitable way. Forexample, the steps 31-34 can be performed partially and in a differentorder until all of the steps 31-34 are completed. The priority schemesfor the queues 21, 22, and 23 can be varied and determined based on anysuitable priority scheme. In addition, the size of the data in each ofthe requests can be highly varying. For example, in most cases, the sizeof the data in the requests communicated between the host device 10 andthe memory card 13 can be much larger than the data size of the requestscommunicated between the host device 10 and the cloud servers 11, due tothe higher bandwidth of communication channel 14 versus thecommunication channel 12. The request queues need not replicate therequested data and, for example, can employ pointers, and the like, tothe requested data to reduce storage bandwidth. The choice of the datafor each of the requests, the specific method to store them, and thespecific priority schemes for the processing of the request queues canbe application dependent and can be chosen from any suitable scheme. Theflowchart of FIG. 2 can be used to enable cloud servers 11 tocommunicate and control the slave memory card 13 processing and storageresources for the host device 10 with suitable cloud link and card linkprograms or modules 19 and 16, based on the flowchart of FIG. 2,respectively running on the cloud servers 11 and the memory card 13.

Advantageously, the memory card 13 with processing and/or storage isconfigured as a slave to the host device 10 connected, for example, viathe Internet to the cloud servers 11, so as be under control of thecloud servers 11, based on the device link program 20 running on thehost device 10. This is like having one of the computer racks of thecloud servers 11 to be made compact and much smaller in size, withsmaller power consumption, and with lesser capabilities, configured asthe memory card 13 and being connected to the client host device 11.Thus, the cloud servers 11 are provided with a predictable andcontrollable hardware platform via the host device link program ormodule 20. The host device link program or module 20 can be provided,installed and run on the host device 10 or provided on the host device10 by the manufacturer of the host device 10.

Advantageously, part of the computational power for applications and/orservices of the cloud servers 11 can be moved for local computation bythe host device 10, using the memory card 13, avoiding use of arelatively high amount and/or fine grain level of communications betweenthe host device 10 and the cloud servers 11 via the interface 12, andinstead using relatively high amount and/or coarse grain level ofcommunications between host device 10 and the memory card 13 via theinterface 14. For example, the memory card 13 can be configured to rundecoding, transcoding, and the like, functions to convert content fromthe cloud servers to a format recognizable by the host device 10 and/orfor providing rendering engines on the memory card 13, and moving therest of the applications to the cloud servers 11. The local contentdecoding and/or rendering performed by the memory card 13 can provide ahigh quality user experience without the need for back and forthcommunications with the cloud servers 11. Advantageously, decodingand/or transcoding of content to a simpler format understandable by thehost device 10, and rendering suitable for the interfaces of the hostdevice 10 can be performed in the memory card 13. Advantageously, thisenables a variety of client devices 10 with varying build parameters andpurposes to be able to be provided with a rich set of cloud applicationsand/or services via the memory card 13.

Advantageously, the illustrative systems and methods enable encoding ofthe content to be communicated from the cloud servers 11 to the hostdevice 10 and vice versa in a compressed format which is more compressedthan the host device 10 can handle and which is enabled by theprocessing power and storage in the memory card 13. Accordingly, aservice provider can transcode content through a post-processing stepinto a more compressed format and send the compressed content throughthe communications channel 12 at relatively lower bit-rate. Then, thedevice link program or module 20 can pass the compressed content to thememory card 13. The memory card 13 can then process the compressedcontent and transcode the compressed content from the higher compressionto a lower compression format that can be processed by the host device10 and send the transcoded content to the host device 10. Similarly,content on the host device 10 that may be already compressed can be sentto the memory card 13 for decompression. The memory card 13 based on itsone or more processors 13A and storage resources can transcode thecompressed content to a higher compression format and send the highercompressed content to the cloud servers 11 through the memory card 13interface 14 to the host device 10 and the communications channel 12.Advantageously, the compressed content can be communicated at arelatively lower bit-rate through the communications channel 12. Suchbandwidth optimization provides an advantageous cost reductionopportunity for network operators and/or service providers by employingless bandwidth. In addition, this also can enable the sending of contentthrough the communication channel 12 at a relatively higher qualitycompression for a same bit-rate. Such features are advantageous becauseit may take a long time for content and/or devices to adopt highercompression standards. In addition, such features enable the leveragingof relatively higher compression, even if the host device 10 and thecontent to be sent through the communications channel 12 have notadopted the latest high data compression format.

Advantageously, a more energy efficient mechanism for delivery of cloudapplications and/or services is provided by partitioning more of therelatively high computational tasks onto a processor of the relativelylow power memory card 13, when the power consumption on the memory card13 is lower than the power consumption on the cloud servers 11 whenperforming such partitioned tasks. In addition, this can reduce thecomputational and power consumption costs on the cloud servers 11 side,since the client devices 10 covers such costs on the client device 10side with the help of the memory card 13. With the rapid increase ofcomputation energy costs, such computational off-loading or loadbalancing between the cloud servers 11 and the processing and storage inthe memory card 13 can become advantageous for cloud services and/orapplications providers.

The above-described devices and subsystems of the illustrativeembodiments of FIGS. 1-2 can include, for example, any suitable servers,workstations, PCs, laptop computers, PDAs, Internet appliances, handhelddevices, cellular telephones, wireless devices, other electronicdevices, and the like, capable of performing the processes of theillustrative embodiments of FIGS. 1-2. The devices and subsystems of theillustrative embodiments of FIGS. 1-2 can communicate with each otherusing any suitable protocol and can be implemented using one or moreprogrammed computer systems or devices.

One or more interface mechanisms can be used with the illustrativeembodiments of FIGS. 1-2, including, for example, Internet access,telecommunications in any suitable form (e.g., voice, modem, and thelike), wireless communications media, and the like. For example,employed communications networks or links can include one or morewireless communications networks, cellular communications networks,cable communications networks, satellite communications networks, G3communications networks, Public Switched Telephone Network (PSTNs),Packet Data Networks (PDNs), the Internet, intranets, WiMax Networks, acombination thereof, and the like.

It is to be understood that the devices and subsystems of theillustrative embodiments of FIGS. 1-2 are for illustrative purposes, asmany variations of the specific hardware and/or software used toimplement the illustrative embodiments are possible, as will beappreciated by those skilled in the relevant art(s). For example, thefunctionality of one or more of the devices and subsystems of theillustrative embodiments of FIGS. 1-2 can be implemented via one or moreprogrammed computer systems or devices.

To implement such variations as well as other variations, a singlecomputer system can be programmed to perform the special purposefunctions of one or more of the devices and subsystems of theillustrative embodiments of FIGS. 1-2. On the other hand, two or moreprogrammed computer systems or devices can be substituted for any one ofthe devices and subsystems of the illustrative embodiments of FIGS. 1-2.Accordingly, principles and advantages of distributed processing, suchas redundancy, replication, and the like, also can be implemented, asdesired, to increase the robustness and performance the devices andsubsystems of the illustrative embodiments of FIGS. 1-2.

The devices and subsystems of the illustrative embodiments of FIGS. 1-2can store information relating to various processes described herein.This information can be stored in one or more memories, such as a harddisk, optical disk, magneto-optical disk, RAM, and the like, of thedevices and subsystems of the illustrative embodiments of FIGS. 1-2. Oneor more databases of the devices and subsystems of the illustrativeembodiments of FIGS. 1-2 can store the information used to implement theillustrative embodiments of the present invention. The databases can beorganized using data structures (e.g., records, tables, arrays, fields,graphs, trees, lists, and the like) included in one or more memories orstorage devices listed herein. The processes described with respect tothe illustrative embodiments of FIGS. 1-2 can include appropriate datastructures for storing data collected and/or generated by the processesof the devices and subsystems of the illustrative embodiments of FIGS.1-2 in one or more databases thereof.

All or a portion of the devices and subsystems of the illustrativeembodiments of FIGS. 1-2 can be conveniently implemented using one ormore general purpose computer systems, microprocessors, digital signalprocessors, micro-controllers, application processors, domain specificprocessors, application specific signal processors, and the like,programmed according to the teachings of the illustrative embodiments ofthe present invention, as will be appreciated by those skilled in thecomputer and software arts. Appropriate software can be readily preparedby programmers of ordinary skill based on the teachings of theillustrative embodiments, as will be appreciated by those skilled in thesoftware art. In addition, the devices and subsystems of theillustrative embodiments of FIGS. 1-2 can be implemented by thepreparation of application-specific integrated circuits or byinterconnecting an appropriate network of conventional componentcircuits, as will be appreciated by those skilled in the electricalart(s). Thus, the illustrative embodiments are not limited to anyspecific combination of hardware circuitry and/or software.

Stored on any one or on a combination of computer readable media, theillustrative embodiments of the present invention can include softwarefor controlling the devices and subsystems of the illustrativeembodiments of FIGS. 1-2, for driving the devices and subsystems of theillustrative embodiments of FIGS. 1-2, for enabling the devices andsubsystems of the illustrative embodiments of FIGS. 1-2 to interact witha human user, and the like. Such software can include, but is notlimited to, device drivers, firmware, operating systems, developmenttools, applications software, and the like. Such computer readable mediafurther can include the computer program product of an embodiment of thepresent invention for performing all or a portion (if processing isdistributed) of the processing performed in implementing theillustrative embodiments of FIGS. 1-2. Computer code devices of theillustrative embodiments of the present invention can include anysuitable interpretable or executable code mechanism, including but notlimited to scripts, interpretable programs, dynamic link libraries(DLLs), Java classes and applets, complete executable programs, CommonObject Request Broker Architecture (CORBA) objects, and the like.Moreover, parts of the processing of the illustrative embodiments of thepresent invention can be distributed for better performance,reliability, cost, and the like.

As stated above, the devices and subsystems of the illustrativeembodiments of FIGS. 1-2 can include computer readable medium ormemories for holding instructions programmed according to the teachingsof the present invention and for holding data structures, tables,records, and/or other data described herein. Computer readable mediumcan include any suitable medium that participates in providinginstructions to a processor for execution. Such a medium can take manyforms, including but not limited to, non-volatile media, volatile media,transmission media, and the like. Non-volatile media can include, forexample, optical or magnetic disks, magneto-optical disks, and the like.Volatile media can include dynamic memories, and the like. Transmissionmedia can include coaxial cables, copper wire, fiber optics, and thelike. Transmission media also can take the form of acoustic, optical,electromagnetic waves, and the like, such as those generated duringradio frequency (RF) communications, infrared (IR) data communications,and the like. Common forms of computer-readable media can include, forexample, a floppy disk, a flexible disk, hard disk, magnetic tape, anyother suitable magnetic medium, a CD-ROM, CDRW, DVD, any other suitableoptical medium, punch cards, paper tape, optical mark sheets, any othersuitable physical medium with patterns of holes or other opticallyrecognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any othersuitable memory chip or cartridge, a carrier wave, or any other suitablemedium from which a computer can read.

While the present invention have been described in connection with anumber of illustrative embodiments and implementations, the presentinvention is not so limited, but rather covers various modifications andequivalent arrangements, which fall within the purview of the appendedclaims.

What is claimed is:
 1. A system for cloud computing, the systemcomprising: a cloud server including a cloud link module or program andcoupled to a communications network; a client device including a devicelink module or program and coupled to the cloud server via thecommunications network; and a memory card including a card link moduleor program and coupled to the client device, wherein the cloud link,client link, and card link modules or programs are configured toallocate processing of content between the cloud server, client deviceand memory card, such that communications bandwidth usage between thecloud server and the client device are minimized during contentdelivery.
 2. The system of claim 1, wherein the cloud server comprises aplurality or cloud servers or virtualized computers.
 3. The system ofclaim 1, wherein, based on the allocation by the cloud link, clientlink, and card link modules or programs, the cloud server is configuredto perform transcoding on the content to a higher compression, thememory card is configured to perform transcoding of the highercompressed content to a lower compression so the lower compressedcontent can be used by the client device, and the client device isconfigured to perform decompression of the transcoded content.
 4. Thesystem of claim 1, wherein the content comprises at least one of videoand audio files.
 5. The system of claim 1, wherein the memory cardincludes a standard memory interface.
 6. The system of claim 1, whereinthe memory card includes at least one of a microcontroller,microprocessor, application processor, and programmable processorconfigured to execute the card link module or program.
 7. A method forcloud computing, the method comprising: providing in a cloud servercoupled to a communications network, a cloud link module or program;providing in a client device coupled to the cloud server via thecommunications network, a device link module or program and; providingin a memory card coupled to the client device, a card link module orprogram; and allocating processing of content between the cloud server,client device and memory card via the cloud link, client link, and cardlink modules or programs, such that communications bandwidth usagebetween the cloud server and the client device are minimized duringcontent delivery.
 8. The method of claim 7, wherein the cloud servercomprises a plurality or cloud servers or virtualized computers.
 9. Themethod of claim 7, wherein, based on the allocation by the cloud link,client link, and card link modules or programs, performing by the cloudserver transcoding on the content to a higher compression, performing bythe memory card transcoding of the higher compressed content to a lowercompression so the lower compressed content can be used by the clientdevice, and performing by the client device decompression of thetranscoded content.
 10. The method of claim 7, wherein the contentcomprises at least one of video and audio files.
 11. The method of claim7, wherein the memory card includes a standard memory interface.
 12. Themethod of claim 7, wherein the memory card includes at least one of amicrocontroller, microprocessor, application processor, and programmableprocessor configured to execute the card link module or program.
 13. Acomputer program product for cloud computing, and including one or morecomputer readable instructions embedded on a computer readable mediumand configured to cause one or more computer processors to perform thesteps of: providing in a cloud server coupled to a communicationsnetwork, a cloud link module or program; providing in a client devicecoupled to the cloud server via the communications network, a devicelink module or program and; providing in a memory card coupled to theclient device, a card link module or program; and allocating processingof content between the cloud server, client device and memory card viathe cloud link, client link, and card link modules or programs, suchthat communications bandwidth usage between the cloud server and theclient device are minimized during content delivery.
 14. The computerprogram product of claim 13, wherein the cloud server comprises aplurality or cloud servers or virtualized computers.
 15. The computerprogram product of claim 13, wherein, based on the allocation by thecloud link, client link, and card link modules or programs, performingby the cloud server transcoding on the content to a higher compression,performing by the memory card transcoding of the higher compressedcontent to a lower compression so the lower compressed content can beused by the client device, and performing by the client devicedecompression of the transcoded content.
 16. The computer programproduct of claim 13, wherein the content comprises at least one of videoand audio files.
 17. The computer program product of claim 13, whereinthe memory card includes a standard memory interface.
 18. The computerprogram product of claim 13, wherein the memory card includes at leastone of a microcontroller, microprocessor, application processor, andprogrammable processor configured to execute the card link module orprogram.